package com.uzai.console.service.feign.impl;

import com.uzai.console.common.UzaiRespVo;
import com.uzai.console.dto.feign.wxpub.AuthUnBindDto;
import com.uzai.console.dto.feign.wxpub.AuthUrlDto;
import com.uzai.console.dto.wxpubmanage.*;
import com.uzai.console.service.feign.WxServerFeignService;
import com.uzai.console.vo.wxpub.*;
import feign.hystrix.FallbackFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;

/**
 * @Auther: jianghan
 * @Date: 2021/11/24 16:24
 * @Description:
 */
@Component
public class WxServerFeignFallbackFactory implements FallbackFactory<WxServerFeignService> {

    private static Logger logger = LoggerFactory.getLogger(WxServerFeignFallbackFactory.class);

    @Override
    public WxServerFeignService create(Throwable throwable) {
        logger.error("--微信公众号调用微服务失败，err={}", throwable);

        return new WxServerFeignService() {
            @Override
            public UzaiRespVo<AuthUrlVo> queryAuthUrl(AuthUrlDto authUrlDto) {
                return null;
            }

            @Override
            public UzaiRespVo<Boolean> unbind(AuthUnBindDto unBindDto) {
                return null;
            }

            @Override
            public UzaiRespVo<BaseResponse> createMenu(CreateMenuDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<Boolean> queryMenu(CreateMenuDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<Boolean> createMaterial(CreateMaterialDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<Boolean> updateMaterial(UpdateMaterialDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<Boolean> deleteMaterial(DeletePublishDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<MaterialBatchGetResponse> queryMaterial(QueryMaterialDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<MediaResponse> uploadFile(UploadMaterialDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<NewsItemResponse> queryDetail(QueryMaterialDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<PicByteStringResponse> queryPicDetail(QueryMaterialDto dto) {
                return null;
            }

            @Override
            public UzaiRespVo<CreateQrcodeVo> createQrcode(QrcodeDto dto) {
                return null;
            }


        };
    }
    }
